home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 001-025 / 018 / xlisp1.6 / xlglob.c < prev    next >
C/C++ Source or Header  |  1995-03-13  |  2KB  |  66 lines

  1. /* xlglobals - xlisp global variables */
  2. /*    Copyright (c) 1985, by David Michael Betz
  3.     All Rights Reserved
  4.     Permission is granted for unrestricted non-commercial use    */
  5.  
  6. #include "xlisp.h"
  7.  
  8. /* symbols */
  9. NODE *true = NIL, *s_dot = NIL;
  10. NODE *s_quote = NIL, *s_function = NIL;
  11. NODE *s_bquote = NIL, *s_comma = NIL, *s_comat = NIL;
  12. NODE *s_evalhook = NIL, *s_applyhook = NIL;
  13. NODE *s_lambda = NIL, *s_macro = NIL;
  14. NODE *s_stdin = NIL, *s_stdout = NIL, *s_rtable = NIL;
  15. NODE *s_tracenable = NIL, *s_tlimit = NIL, *s_breakenable = NIL;
  16. NODE *s_car = NIL, *s_cdr = NIL, *s_nth = NIL;
  17. NODE *s_get = NIL, *s_svalue = NIL, *s_splist = NIL, *s_aref = NIL;
  18. NODE *s_eql = NIL, *k_test = NIL, *k_tnot = NIL;
  19. NODE *k_wspace = NIL, *k_const = NIL, *k_nmacro = NIL, *k_tmacro = NIL;
  20. NODE *k_optional = NIL, *k_rest = NIL, *k_aux = NIL;
  21. NODE *a_subr = NIL, *a_fsubr = NIL;
  22. NODE *a_list = NIL, *a_sym = NIL, *a_int = NIL, *a_float = NIL;
  23. NODE *a_str = NIL, *a_obj = NIL, *a_fptr = NIL, *a_vect;
  24. NODE *obarray = NIL, *s_unbound = NIL;
  25.  
  26. /* evaluation variables */
  27. NODE ***xlstack = NULL, ***xlstkbase = NULL, ***xlstktop = NULL;
  28. NODE *xlenv = NIL;
  29.  
  30. /* exception handling variables */
  31. CONTEXT *xlcontext = NULL;    /* current exception handler */
  32. NODE *xlvalue = NIL;        /* exception value */
  33.  
  34. /* debugging variables */
  35. int xldebug = 0;        /* debug level */
  36. int xltrace = -1;        /* trace stack pointer */
  37. NODE **trace_stack = NULL;    /* trace stack */
  38. int xlsample = 0;        /* control character sample rate */
  39.  
  40. /* gensym variables */
  41. char gsprefix[STRMAX+1] = { 'G',0 };    /* gensym prefix string */
  42. int gsnumber = 1;        /* gensym number */
  43.  
  44. /* i/o variables */
  45. int prompt = TRUE;         /* prompt flag */
  46. int xlplevel = 0;        /* paren nesting level */
  47. int xlfsize = 0;        /* flat size of current print call */
  48.  
  49. /* dynamic memory variables */
  50. long total = 0L;        /* total memory in use */
  51. int anodes = 0;            /* number of nodes to allocate */
  52. int nnodes = 0;            /* number of nodes allocated */
  53. int nsegs = 0;            /* number of segments allocated */
  54. int nfree = 0;            /* number of nodes free */
  55. int gccalls = 0;        /* number of gc calls */
  56. struct segment *segs = NULL;    /* list of allocated segments */
  57. NODE *fnodes = NIL;        /* list of free nodes */
  58.  
  59. /* object programming variables */
  60. NODE *self = NIL, *class = NIL, *object = NIL;
  61. NODE *new = NIL, *isnew = NIL, *msgcls = NIL, *msgclass = NIL;
  62.  
  63. /* general purpose string buffer */
  64. char buf[STRMAX+1] = { 0 };
  65.  
  66.